Androidstudio根据图片路径获取本地图片的方法

本文介绍了如何在Android应用中通过字符串路径读取SD卡DCIM目录下的图片,并使用BitmapFactory进行解码,最后展示在ImageView上。同时展示了两种加载图片的不同方式:通过File对象和ImageURI。
摘要由CSDN通过智能技术生成
  1. String path="//sdcard//DCIM//a31.jpg";
    File file = new File(path);
    
    if(file.exists()){
        Bitmap bm = BitmapFactory.decodeFile(path);
        pruductImg.setImageBitmap(bm);
    }
    
  2. private ImageView pruductImg;
    pruductImg.setImageURI(
    Uri.fromFile(newFile(CommonParameter.getMyproduct().getmImg()))
    );
Android Studio中,上传本地图片通常涉及到以下几个步骤: 1. **获取图片文件路径**:首先,你需要从用户选择的相册或者相机获取图片。这通过`ACTION_PICK`或`ACTION_IMAGE_CAPTURE`启动相应的Activity,然后解析返回的结果获取图片的Uri。 ```java Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE); ``` 2. **读取图片内容**:在 onActivityResult 中,你可以使用 `ContentResolver` 来读取 Uri 对应的图片数据。例如: ```java @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_PICK_IMAGE && resultCode == RESULT_OK) { Uri selectedImage = data.getData(); try { Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImage)); // 现在可以对bitmap进行处理 } catch (FileNotFoundException e) { e.printStackTrace(); } } } ``` 3. **上传图片**:有了Bitmap,你可以将其转换成字节数组,并通过网络请求将其上传至服务器。这里可以使用OkHttp、Retrofit等库来进行网络请求。 ```java ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos); // 压缩图片 byte[] imageBytes = baos.toByteArray(); // 发送POST请求 RequestBody requestBody = RequestBody.create(MediaType.parse("image/jpeg"), imageBytes); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(uploadUrl) .post(requestBody) .build(); Response response = client.newCall(request).execute(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值